特徵選擇就是要在原始的特徵集合中
找出一個子集合建構模型
使得模型對於觀察點的模型表現最好
建構目標子集合的方式大約有三種
向前(forward)、向後(backward)、逐步(stepwise)
向前特徵選擇(Forward Feature Selection):
從空集合開始 → 加入一個新特徵 → 計算模型表現 → 挑選表現最好的加入最終子集合 → 回到step2
把它想像成是在創建一個團隊
從一開始 {}(沒有人) → 創立者 → 找夥伴 → ...
在找夥伴時,你一定會希望能挑選為團隊貢獻最多的
如果有一個職務已有人可負擔,就不會想再找有類似技能的了
然而!!這種找夥伴的方法也不可避免會先從好朋友開始找
這有可能導致最終的團隊依然不是最好的團隊!
因為後面挑選進來的人一定要與前輩合作
合作愉快的才會被留下,而這也成了它的缺點
向後特徵選擇(Backward Feature Selection):
從全集合開始 → 丟掉一個新特徵 → 計算模型表現 → 挑選被丟掉後影響最少的特徵 → 回到step2
假設有一天團隊開始叫大家分別請個幾天假
某人可能還在感恩佛心之時
突然就被踢出團隊了
上司云:有你跟沒你一樣(怎麼好像就是我~XD)
就像向後特徵選擇一個一個測試
如果有這個特徵跟沒有這個特徵的影響不大
那就把它丟掉
而它的缺點也很明顯
就是當特徵過多時會篩很久
逐步特徵選擇(Stepwise Feature Selection)
向前 → 向後 → 向前 → ...
考慮到向前與向後各自的缺點
所以逐步就像是
一開始從好朋友找沒問題(向前)
只是等到團隊到了一個規模時
就該狠心把貢獻度不足的人剔除(向後)
再重找新人進來(向前)
然後一直重複這個步驟
直到不再有新人被納入或老人被拋棄
每次講到向後特徵選擇
都感覺是在說自己~XD